import Vue from 'vue'
import Router from 'vue-router'
import ElementUI from 'element-ui';
import axios from 'axios'
import store from '../vuex/store'
import quillEditor from 'vue-quill-editor'
import home from '@/components/home'
// 合作模式
import cooperaModel from '@/components/cooperaModel'
// 产品展示
import product from '@/components/product'
// 产品添加
import productAdd from '@/components/productAdd'
// 产品添加
import productType from '@/components/productType'
// 产品详情
import productDetail from '@/components/productDetail'

// 新闻分类
import newsType from '@/components/newsType'
// 新闻
import news from '@/components/news'
// 招聘信息
import recruitment from '@/components/recruitment'
// 人才加入
import talentEntry from '@/components/talentEntry'
// 弹幕文案
import barrage from '@/components/barrage'
// 企业资质
import qualification from '@/components/qualification'
// 联系我们
import contact from '@/components/contact'
//售后服务
import service from '@/components/service'
//账号管理
import accountInfo from '@/components/accountInfo'
// 关于博路
import about from '@/components/about'
// 权限管理
import role from '@/components/role'


import login from '@/components/login'

Vue.use(Router)
Vue.use(ElementUI)
Vue.use(quillEditor)

const router = new Router({
        routes: [{
                path: '/home',
                name: 'home',
                component: home,
                children: [{
                        path: 'cooperaModel',
                        name: 'cooperaModel',
                        meta: {
                            requireAuth: true, // 添加该字段，表示进入这个路由是需要登录的
                        },
                        component: cooperaModel
                    },
                    {
                        path: 'product',
                        name: 'product',
                        meta: {
                            requireAuth: true, // 添加该字段，表示进入这个路由是需要登录的
                        },
                        component: product
                    },
                    {
                        path: 'productAdd',
                        name: 'productAdd',
                        meta: {
                            requireAuth: true, // 添加该字段，表示进入这个路由是需要登录的
                        },
                        component: productAdd
                    },
                    {
                        path: 'productType',
                        name: 'productType',
                        meta: {
                            requireAuth: true, // 添加该字段，表示进入这个路由是需要登录的
                        },
                        component: productType
                    },
                    {
                        path: 'newsType',
                        name: 'newsType',
                        meta: {
                            requireAuth: true, // 添加该字段，表示进入这个路由是需要登录的
                        },
                        component: newsType
                    },
                    {
                        path: 'news',
                        name: 'news',
                        meta: {
                            requireAuth: true, // 添加该字段，表示进入这个路由是需要登录的
                        },
                        component: news
                    },
                    {
                        path: 'recruitment',
                        name: 'recruitment',
                        meta: {
                            requireAuth: true, // 添加该字段，表示进入这个路由是需要登录的
                        },
                        component: recruitment
                    },
                    {
                        path: 'talentEntry',
                        name: 'talentEntry',
                        meta: {
                            requireAuth: true, // 添加该字段，表示进入这个路由是需要登录的
                        },
                        component: talentEntry
                    },
                    {
                        path: 'barrage',
                        name: 'barrage',
                        meta: {
                            requireAuth: true, // 添加该字段，表示进入这个路由是需要登录的
                        },
                        component: barrage
                    },
                    {
                        path: 'qualification',
                        name: 'qualification',
                        meta: {
                            requireAuth: true, // 添加该字段，表示进入这个路由是需要登录的
                        },
                        component: qualification
                    },
                    {
                        path: 'contact',
                        name: 'contact',
                        meta: {
                            requireAuth: true, // 添加该字段，表示进入这个路由是需要登录的
                        },
                        component: contact
                    },
                    {
                        path: 'about',
                        name: 'about',
                        meta: {
                            requireAuth: true, // 添加该字段，表示进入这个路由是需要登录的
                        },
                        component: about
                    },
                    {
                        path: 'accountInfo',
                        name: 'accountInfo',
                        meta: {
                            requireAuth: true, // 添加该字段，表示进入这个路由是需要登录的
                        },
                        component: accountInfo
                    },
                    {
                        path: 'role',
                        name: 'role',
                        meta: {
                            requireAuth: true, // 添加该字段，表示进入这个路由是需要登录的
                        },
                        component: role
                    },
                    {
                        path: 'productDetail',
                        name: 'productDetail',
                        meta: {
                            requireAuth: true, // 添加该字段，表示进入这个路由是需要登录的
                        },
                        component: productDetail
                    },
                    {
                        path: 'service',
                        name: 'service',
                        meta: {
                            requireAuth: true, // 添加该字段，表示进入这个路由是需要登录的
                        },
                        component: service
                    }
                ]
            },
            {
                path: '/',
                name: 'login',
                component: login
            }

        ]
    })
    // 判断是否需要登录权限 以及是否登录
router.beforeEach((to, from, next) => {
    if (to.meta.requireAuth) { // 判断该路由是否需要登录权限
        axios.get(store.state.httpApi + 'tokenCheck/check?token=' + localStorage.getItem('token') + '&id=' + localStorage.getItem('userId')).then(response => {
            if (!response.data.success) {
                localStorage.removeItem('token');
                localStorage.removeItem('userId');
                router.push({ path: '/' });
            }
        }, response => {
            router.push({ path: '/' });
            console.log('请求失败', response)
        })
    }
    // router.push({path: 'login'})  
    //已登录的情况再去登录页，跳转至首页  
    // if (to.name === 'login') {  
    //     if (auth.IsLogin) {  
    //         vueRouter.push({name: 'home'});  
    //     }  
    // }  
    next()
})
export default router
axios.interceptors.request.use(
    config => {
        var qs = require('querystring');
        //      console.log(config)
        if (config.url.indexOf('uploadfile') >= 0) {

        } else {
            config.data = qs.stringify(config.data)
        }
        // console.log(config.data)
        return config;
    },
    err => {
        return Promise.reject(err);
    });
Vue.prototype.$http = axios;